Web service is a distributed computing environment, whose basic idea is to implement distributed software development, software engineering and software using on the Internet by using open standard techniques. Here, “service” means all kinds of software distributed on the Internet, and either an entity user or an individual user can invoke service software existing on the Internet by using Web service techniques to constitute their own application software in accordance with service needs. Application software of different entities can invoke each other with Web service techniques to support applications, such as e-business, client relationship model, etc. and so do the application software of entities and clients. Although the meaning of Web service is totally different from that of common Web that can only provide data service, the adopted protocol and interface thereof still fall into Web techniques that have been put into extensive use.
The basic technique of Web service lies in XML that is an extensible markup language defined by W3C to describe data. Different from Hypertext Markup Language (HTML), XML merely describes data contents per se without involving display of data, and thus it can be used to describe any content in broad sense. In Web service, it is XML that is used to describe remote invocation operations and implementation results thereof. The description is loaded in Simple Object Access Protocol (SOAP), and SOAP messages are usually transferred in the most common HTTP. Since XML text description is irrelevant to implementation, platforms that adopt different operating systems and different programming languages can interact with each other via Web service. The distribution and description of Web Service per se is also implemented using XML.
Web Service policy describes the requirements and abilities of a web service in its interactions with other web services or consumers, which is important to Service Level Agreement (SLA). The Web Services Policy (WS-Policy) Framework defined by IBM, BEA, Microsoft, etc., is the de facto standard for Web Service policy. It provides a general purpose model and corresponding syntax to describe the policies of a Web service. WS policy defines a set of base constructs that can be used and extended by other Web services specifications to describe a broad range of service requirements and capabilities. Based on WS policy, a standard set has been defined for different perspectives of system including WS-RM policy, WS-Security policy, WS-Atomic transactions, WS policy assertions, etc. Users can also define policy languages based on WS policy and related standards for their requests. Web Service policy is a standard protocol that can be easily extended and can be used to perform other functions.
In general, a Web service provider will disclose a policy to present conditions for service provisioning. The service provider defines and publishes a set of options in policy statements in different ways, such as via a service registration center (e.g. UDDI) or embedded in WSDL. A service consumer can use the policy to decide whether and how to use the service. Further, the service consumer can select any substitute option in the policy statements because each substitute option is an effective configuration capable of interacting with the service. Generally, the service consumer or other policy enforcement point choose an option in the policy statements and aggregate it with local policy statement to generate the effective policy that will be enforced during communication with the service provider.
Such a mechanism provides flexibility for the provider who provides client side application selection service. In this mechanism, after the service provider exposes all its acceptable options, the choice is actually in the requester's hand, and the service provider cannot control the service requester to choose which option. Thus, a certain policy option might be used by many requesters, while other options are seldom or hardly chosen, so that the load of the service provider is not balanced. For example, after the resource of a certain policy option is exhausted, if requesters still request the service provider to provide service in accordance with the policy option, then the service provider cannot provide service in accordance with the option. Meanwhile, if a requester requests other service, the service provider has resources to provide service in accordance with the option. Therefore, there is a need for a mechanism to enable a service provider to dynamically decide the disclosure of service policy in accordance with conditions, so as to prevent service consumers from blindly choosing service policy.
Another demand for Web service is to provide service differentiation. Efforts have been made by industry and academy to enable Web service differentiation. However, these methods are derived by extending IP differentiated service, and focus on service implementation itself and network transportation layer, such as a Web server.